package com.smarttest.portal.pojo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class BadpointExample {
    protected String orderByClause;
    
    protected String groupByClause;
    
    protected String havingClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BadpointExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }
    
    public void setGroupByClause(String groupByClause) {
        this.groupByClause = groupByClause;
    }

    public String getGroupByClause() {
        return groupByClause;
    }
    
    public void setHavingClause(String havingClause) {
        this.havingClause = havingClause;
    }

    public String getHavingClause() {
        return havingClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andImeiIsNull() {
            addCriterion("imei is null");
            return (Criteria) this;
        }

        public Criteria andImeiIsNotNull() {
            addCriterion("imei is not null");
            return (Criteria) this;
        }

        public Criteria andImeiEqualTo(String value) {
            addCriterion("imei =", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiNotEqualTo(String value) {
            addCriterion("imei <>", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiGreaterThan(String value) {
            addCriterion("imei >", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiGreaterThanOrEqualTo(String value) {
            addCriterion("imei >=", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiLessThan(String value) {
            addCriterion("imei <", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiLessThanOrEqualTo(String value) {
            addCriterion("imei <=", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiLike(String value) {
            addCriterion("imei like", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiNotLike(String value) {
            addCriterion("imei not like", value, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiIn(List<String> values) {
            addCriterion("imei in", values, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiNotIn(List<String> values) {
            addCriterion("imei not in", values, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiBetween(String value1, String value2) {
            addCriterion("imei between", value1, value2, "imei");
            return (Criteria) this;
        }

        public Criteria andImeiNotBetween(String value1, String value2) {
            addCriterion("imei not between", value1, value2, "imei");
            return (Criteria) this;
        }

        public Criteria andPrelngIsNull() {
            addCriterion("prelng is null");
            return (Criteria) this;
        }

        public Criteria andPrelngIsNotNull() {
            addCriterion("prelng is not null");
            return (Criteria) this;
        }

        public Criteria andPrelngEqualTo(BigDecimal value) {
            addCriterion("prelng =", value, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngNotEqualTo(BigDecimal value) {
            addCriterion("prelng <>", value, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngGreaterThan(BigDecimal value) {
            addCriterion("prelng >", value, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("prelng >=", value, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngLessThan(BigDecimal value) {
            addCriterion("prelng <", value, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngLessThanOrEqualTo(BigDecimal value) {
            addCriterion("prelng <=", value, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngIn(List<BigDecimal> values) {
            addCriterion("prelng in", values, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngNotIn(List<BigDecimal> values) {
            addCriterion("prelng not in", values, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("prelng between", value1, value2, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelngNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("prelng not between", value1, value2, "prelng");
            return (Criteria) this;
        }

        public Criteria andPrelatIsNull() {
            addCriterion("prelat is null");
            return (Criteria) this;
        }

        public Criteria andPrelatIsNotNull() {
            addCriterion("prelat is not null");
            return (Criteria) this;
        }

        public Criteria andPrelatEqualTo(BigDecimal value) {
            addCriterion("prelat =", value, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatNotEqualTo(BigDecimal value) {
            addCriterion("prelat <>", value, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatGreaterThan(BigDecimal value) {
            addCriterion("prelat >", value, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("prelat >=", value, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatLessThan(BigDecimal value) {
            addCriterion("prelat <", value, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatLessThanOrEqualTo(BigDecimal value) {
            addCriterion("prelat <=", value, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatIn(List<BigDecimal> values) {
            addCriterion("prelat in", values, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatNotIn(List<BigDecimal> values) {
            addCriterion("prelat not in", values, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("prelat between", value1, value2, "prelat");
            return (Criteria) this;
        }

        public Criteria andPrelatNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("prelat not between", value1, value2, "prelat");
            return (Criteria) this;
        }

        public Criteria andPretimeIsNull() {
            addCriterion("pretime is null");
            return (Criteria) this;
        }

        public Criteria andPretimeIsNotNull() {
            addCriterion("pretime is not null");
            return (Criteria) this;
        }

        public Criteria andPretimeEqualTo(Date value) {
            addCriterion("pretime =", value, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeNotEqualTo(Date value) {
            addCriterion("pretime <>", value, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeGreaterThan(Date value) {
            addCriterion("pretime >", value, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeGreaterThanOrEqualTo(Date value) {
            addCriterion("pretime >=", value, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeLessThan(Date value) {
            addCriterion("pretime <", value, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeLessThanOrEqualTo(Date value) {
            addCriterion("pretime <=", value, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeIn(List<Date> values) {
            addCriterion("pretime in", values, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeNotIn(List<Date> values) {
            addCriterion("pretime not in", values, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeBetween(Date value1, Date value2) {
            addCriterion("pretime between", value1, value2, "pretime");
            return (Criteria) this;
        }

        public Criteria andPretimeNotBetween(Date value1, Date value2) {
            addCriterion("pretime not between", value1, value2, "pretime");
            return (Criteria) this;
        }

        public Criteria andCurlngIsNull() {
            addCriterion("curlng is null");
            return (Criteria) this;
        }

        public Criteria andCurlngIsNotNull() {
            addCriterion("curlng is not null");
            return (Criteria) this;
        }

        public Criteria andCurlngEqualTo(BigDecimal value) {
            addCriterion("curlng =", value, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngNotEqualTo(BigDecimal value) {
            addCriterion("curlng <>", value, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngGreaterThan(BigDecimal value) {
            addCriterion("curlng >", value, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("curlng >=", value, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngLessThan(BigDecimal value) {
            addCriterion("curlng <", value, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngLessThanOrEqualTo(BigDecimal value) {
            addCriterion("curlng <=", value, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngIn(List<BigDecimal> values) {
            addCriterion("curlng in", values, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngNotIn(List<BigDecimal> values) {
            addCriterion("curlng not in", values, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("curlng between", value1, value2, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlngNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("curlng not between", value1, value2, "curlng");
            return (Criteria) this;
        }

        public Criteria andCurlatIsNull() {
            addCriterion("curlat is null");
            return (Criteria) this;
        }

        public Criteria andCurlatIsNotNull() {
            addCriterion("curlat is not null");
            return (Criteria) this;
        }

        public Criteria andCurlatEqualTo(BigDecimal value) {
            addCriterion("curlat =", value, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatNotEqualTo(BigDecimal value) {
            addCriterion("curlat <>", value, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatGreaterThan(BigDecimal value) {
            addCriterion("curlat >", value, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("curlat >=", value, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatLessThan(BigDecimal value) {
            addCriterion("curlat <", value, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatLessThanOrEqualTo(BigDecimal value) {
            addCriterion("curlat <=", value, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatIn(List<BigDecimal> values) {
            addCriterion("curlat in", values, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatNotIn(List<BigDecimal> values) {
            addCriterion("curlat not in", values, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("curlat between", value1, value2, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurlatNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("curlat not between", value1, value2, "curlat");
            return (Criteria) this;
        }

        public Criteria andCurtimeIsNull() {
            addCriterion("curtime is null");
            return (Criteria) this;
        }

        public Criteria andCurtimeIsNotNull() {
            addCriterion("curtime is not null");
            return (Criteria) this;
        }

        public Criteria andCurtimeEqualTo(Date value) {
            addCriterion("curtime =", value, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeNotEqualTo(Date value) {
            addCriterion("curtime <>", value, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeGreaterThan(Date value) {
            addCriterion("curtime >", value, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("curtime >=", value, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeLessThan(Date value) {
            addCriterion("curtime <", value, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeLessThanOrEqualTo(Date value) {
            addCriterion("curtime <=", value, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeIn(List<Date> values) {
            addCriterion("curtime in", values, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeNotIn(List<Date> values) {
            addCriterion("curtime not in", values, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeBetween(Date value1, Date value2) {
            addCriterion("curtime between", value1, value2, "curtime");
            return (Criteria) this;
        }

        public Criteria andCurtimeNotBetween(Date value1, Date value2) {
            addCriterion("curtime not between", value1, value2, "curtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNull() {
            addCriterion("createtime is null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNotNull() {
            addCriterion("createtime is not null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeEqualTo(Date value) {
            addCriterion("createtime =", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotEqualTo(Date value) {
            addCriterion("createtime <>", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThan(Date value) {
            addCriterion("createtime >", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("createtime >=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThan(Date value) {
            addCriterion("createtime <", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("createtime <=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIn(List<Date> values) {
            addCriterion("createtime in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotIn(List<Date> values) {
            addCriterion("createtime not in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeBetween(Date value1, Date value2) {
            addCriterion("createtime between", value1, value2, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("createtime not between", value1, value2, "createtime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeIsNull() {
            addCriterion("updatetime is null");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeIsNotNull() {
            addCriterion("updatetime is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeEqualTo(Date value) {
            addCriterion("updatetime =", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeNotEqualTo(Date value) {
            addCriterion("updatetime <>", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeGreaterThan(Date value) {
            addCriterion("updatetime >", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("updatetime >=", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeLessThan(Date value) {
            addCriterion("updatetime <", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeLessThanOrEqualTo(Date value) {
            addCriterion("updatetime <=", value, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeIn(List<Date> values) {
            addCriterion("updatetime in", values, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeNotIn(List<Date> values) {
            addCriterion("updatetime not in", values, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeBetween(Date value1, Date value2) {
            addCriterion("updatetime between", value1, value2, "updatetime");
            return (Criteria) this;
        }

        public Criteria andUpdatetimeNotBetween(Date value1, Date value2) {
            addCriterion("updatetime not between", value1, value2, "updatetime");
            return (Criteria) this;
        }
        
        public Criteria andtimediff(Integer value){
        	addCriterion("timestampdiff(second,pretime,curtime)>",value,"timestampdiff(second,pretime,curtime)");
        	return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}